import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;


public class quizgui
{
  /*static Variablen*/
  static public String antwortreturn = "";
  static public int weiterint = 0;
  static public String frage = "";
  static public int Afrage = 0;
  static public int menueint = 0;
  static public int anleitungint = 0;
  static public int highscoreint = 0;
  static public int exitint = 0;
  static public int weiterint2 = 0;
  static public int beendenfrageja = 0;
  static public int beendenfragenein = 0;
  static public int beendenfrageweiter = 0;
  static public int nameint = 0;
  static public int verlorenint = 0;
  static public String namestring = ""; 
  /*Fensterframes */
  static public JFrame menue = new JFrame("Das Menue");
  static public JFrame spiel = new JFrame("Start1");
  static public JFrame antwort = new JFrame("Lösung");
  static public JFrame anleitung = new JFrame("Anleitung");
  static public JFrame highscoreF = new JFrame("Highscore"); 
  static public JFrame beendenfrage = new JFrame("Beenden");
  static public JFrame name = new JFrame("Name");
  static public JFrame verlorenJ = new JFrame("Verloren");
  /*Buttons werden erstellt*/
  static public JButton start = new JButton("Start");
  static public JButton Banleitung = new JButton("Anleitung");
  static public JButton highscore =  new JButton("Highscore");
  static public JButton Aweiter = new JButton("weiter");
  static public JButton Lweiter = new JButton("weiter");
  static public JButton anleitungweiter = new JButton("weiter");
  static public JButton highscoreweiter = new JButton("Zurueck zum Menue");
  static public JButton spielexit = new JButton("Zurueck zum Menue");
  static public JButton beenden = new JButton("Beenden");
  static public JButton ja = new JButton("JA");
  static public JButton nein = new JButton("NEIN");
  static public JButton nameweiter = new JButton("weiter");
  static public JButton verlorenweiter = new JButton("Zurueck zum Menue");
  
  /*Eingabefelder */
  static public JTextField Tantwort = new JTextField(15);
  static public JTextField nameT = new JTextField(15);
  /*Textfelder*/
  static public JLabel Lantwort = new JLabel();
  static public JLabel Lfrage = new JLabel(frage, JLabel.CENTER);
  static public JLabel Lhighscore = new JLabel("", JLabel.CENTER);
  static public JLabel Lanleitung = new JLabel("");
  static public JLabel Lhighscore1 = new JLabel("");
  static public JLabel Lhighscore2 = new JLabel("");
  static public JLabel Lhighscore3 = new JLabel("");
  static public JLabel beendenfrageL = new JLabel("");
  static public JLabel nameL = new JLabel("");
  static public JLabel verlorenL = new JLabel("Du hast verloren");
  
  public void verloren()
  {
    ActionListener verlorenli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        verlorenint = 1;
        verlorenJ.setVisible(false);
        
        
      }
    };
    
    verlorenJ.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    verlorenJ.setLayout(new GridLayout(2, 1));
    verlorenJ.add(verlorenL);
    verlorenJ.add(verlorenweiter);
    verlorenweiter.addActionListener(verlorenli);
    verlorenJ.setSize(500 , 600);
    verlorenJ.setVisible(true);
    
  }
  
  public void nameeingeben(int x)
  {
    ActionListener nameweiterli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        namestring = nameT.getText();
        nameT.setText("");
        nameL.setText("");
        name.setVisible(false);
        nameint = 1;
      }
    };
    
    if (x == 1)
    {
      nameL.setText("Du hast den ersten Platz gemacht. Geben bitte dein Namen ein:");
    }
    
    if(x == 2)
    {
      nameL.setText("Du hast den zweiten Platz gemacht. Geben bitte dein Namen ein:");
    }
    
    if(x == 3)
    {
      nameL.setText("Du hast den dritten Platz gemacht. Geben bitte dein Namen ein:");
    }
    
    name.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    name.setLayout(new GridLayout(3, 1));
    name.add(nameL);
    name.add(nameT);
    name.add(nameweiter);
    nameweiter.addActionListener(nameweiterli);
    name.setSize(500 , 600);
    name.setVisible(true);
    
  }
  
  
  public void Dialogboxfrage(int i) 
  {
    ActionListener beendenfragejali = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        beendenfrageja = 1;
        beendenfrageweiter = 1;
        beendenfrage.setVisible(false);
        beendenfrageL.setText("");
        
        
      }
    };
    
    ActionListener beendenfrageneinli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        beendenfrageweiter = 1;
        beendenfrage.setVisible(false);
        beendenfrageL.setText("");
        
      }
    };
    
    if (i == 1) 
    {
      beendenfrageL.setText("Willst du das Spiel wirklich verlassen?");
    }
    else
    {
      beendenfrageL.setText("Bist du dir sicher das du wieder ins Menue willst? Der Highscore geht verloren");
    }
    beendenfrage.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    beendenfrage.setLayout(new GridLayout(3, 1));
    beendenfrage.add(beendenfrageL);
    beendenfrage.add(ja);
    beendenfrage.add(nein);
    ja.addActionListener(beendenfragejali);
    nein.addActionListener(beendenfrageneinli);
    beendenfrage.setSize(500 , 600);
    beendenfrage.setVisible(true);
    
  }
  
  
  public void menue()
  {
    /*ActionListener f�r den ersten Men�button wird erstellt (starten)*/
    ActionListener startli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        menue.setVisible(false);
        menueint = 1;
        
      }
    };
    
    ActionListener anleitungli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        menue.setVisible(false);
        menueint = 2;
        
      }
    };
    
    ActionListener highscoreli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        menue.setVisible(false);
        menueint = 3;
        
      }
    };
    
    ActionListener beendenli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        menue.setVisible(false);
        menueint = 4;
        
      }
    };
    
    /*Menue mit drei Buttons wird erstellt*/
    menue.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    menue.setLayout(new GridLayout(4, 1));
    menue.add(start);    
    menue.add(Banleitung);
    menue.add(highscore);
    menue.add(beenden);
    start.addActionListener(startli);
    Banleitung.addActionListener(anleitungli);
    highscore.addActionListener(highscoreli);
    beenden.addActionListener(beendenli);
    
    menue.setSize(400 , 600);
    menue.setVisible(true);
    /*Menue wird beendet*/
  }
  
  public void anleitung()
  {
    ActionListener anleitungweiterli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        anleitung.setVisible(false);
        anleitungint = 1;
        
      }
    };
    anleitung.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    anleitung.setLayout(new GridLayout(2, 1));
    Lanleitung.setText("<HTML> <BODY> Bei jeder richtigen Frage bekommst du 10 Punkte dazu. Bei jeder Falschen bekommst du 5 Punkte abgezogen. Dein Score kann nicht unter null sinken. Am Ende wird dein Score angezeigt. Diesen kannst du dann im Menue unter dem dritten Punkt abrufen. <BR> Made by  Tom Engemann </BODY></HTML>");
    anleitung.add(Lanleitung);
    anleitung.add(anleitungweiter);
    anleitungweiter.addActionListener(anleitungweiterli);
    anleitung.setSize(390, 400);
    anleitung.setVisible(true);
  }
  
  public void highscore(String highscore1string, String highscore1int, String highscore2string, String highscore2int, String highscore3string, String highscore3int)
  {
    ActionListener highscoreweiterli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        highscoreF.setVisible(false);
        highscoreint = 1;
        
      }
    };
    highscoreF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    highscoreF.setLayout(new GridLayout(4, 1));
    Lhighscore1.setText("Der Erste Platz geht mit: " + highscore1int + "Punkten an: " + highscore1string);
    Lhighscore2.setText("Der Zweite Platz geht mit: " + highscore2int + "Punkten an: " + highscore2string);
    Lhighscore3.setText("Der Dritte Platz geht mit: " + highscore3int + "Punkten an: " + highscore3string);
    highscoreF.add(Lhighscore1);
    highscoreF.add(Lhighscore2);
    highscoreF.add(Lhighscore3);
    highscoreF.add(highscoreweiter);
    highscoreweiter.addActionListener(highscoreweiterli);
    highscoreF.setSize(390, 400);
    highscoreF.setVisible(true);    
  }
  
  
  
  public void frage(String fragenstring, int highscoreint, int fragennr)
  {
    String highscorestring = String.valueOf(highscoreint);
    String fragennrstring = String.valueOf(fragennr);
    /*Action Listener f�r das Fragenfenster*/
    ActionListener Aweiterli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        antwortreturn = Tantwort.getText();
        Lfrage.setText("");
        Tantwort.setText("");
        Lhighscore.setText("");
        spiel.setVisible(false);
        weiterint2 = 1;
        
      }
    };
    ActionListener spielexitli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        exitint = 1;
        Lfrage.setText("");
        Tantwort.setText("");
        Lhighscore.setText("");
        spiel.setVisible(false);
        
      }
    };
    exitint = 0;
    Lfrage.setText("");
    /*Fragenfenster mit der Frage,Eingabe und Weiter Button*/
    spiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    spiel.setLayout(new GridLayout(5, 1));
    Lhighscore.setText("Dein Highscore: " + highscorestring + "Punkte " + "Frage " + fragennrstring + "/10");
    spiel.add(Lhighscore);
    Lfrage.setText(fragenstring + "?");
    spiel.add(Lfrage);
    spiel.add(Tantwort);
    spiel.add(Aweiter);
    spiel.add(spielexit);
    Aweiter.addActionListener(Aweiterli);
    spielexit.addActionListener(spielexitli);
    spiel.setSize(390, 400);    
    spiel.setVisible(true);  
    /*Fragenfenster wird beendet*/
  }
  
  public void loesung(int i)
  {
    ActionListener Lweiterli = new ActionListener()
    {
      public void actionPerformed (ActionEvent e)
      {
        Lantwort.setText(""); 
        antwort.setVisible(false);
        weiterint = 1;
      }
    };
    
    antwort.setLayout(new GridLayout(2, 1));
    if (i == 1) 
    {
      Lantwort.setText("Richtig");
    }
    if(i == 2)
    {
      Lantwort.setText("Falsch");
    } 
    antwort.add(Lantwort);
    antwort.add(Lweiter);
    Lweiter.addActionListener(Lweiterli);
    antwort.setSize(390, 400);  
    antwort.setVisible(true);
    
    
  }
  
  
  public quizgui()
  {
    
  }
}
